#pragma once
#include "Circular.h"
#include "Element.h"
#include "Position.h"
#include "Texture.h"
#include "color.h"
#include "Movable.h"
#include <list>

/*Sumidero*/
class Drainage :public Circular, public Element, public Movable {
	
	/*----------------Atributos-------------------------*/		
	private: Position *position;
	
	private: Texture *texture;

	private: float radius;	

	private: Color * elementColor;

	private: Color * lineColor;

	private: list<Position * > * trajectory;

	private: Position * lastTrajectoryPoint;

	/*--------------Constructores----------------------*/	
	public: Drainage();

	public: Drainage(Position *position);

	/*-------------Getters & Setters--------------------*/

	public: virtual void setPosition(Position *position);

	public: virtual Position *getPosition();

	public: virtual void setRadius(float radius);

	public: virtual float getRadius();

	public: virtual void setTexture(Texture *texture);

	public: virtual Texture* getTexture();

	public: virtual Color * getElementColor();

	public: virtual void setElementColor( Color * color);

	public: virtual Color * getLineColor();

	public: virtual void setLineColor( Color * color);

	public: virtual float getMinXPos();
	
	public: virtual float getMinYPos();
	
	public: virtual float getMaxXPos();
	
	public: virtual float getMaxYPos();

	public:	virtual list<Position*> *  getTrajectory();

	public:	virtual void setTrajectory(list<Position*> * trajectory);

	public:	virtual void move(float timeMilis , float velocityModule);

	
    /*-------------Metodos------------------------------*/
	public: virtual void draw();	
	/*-----------------Destructor-----------------------*/		
	
	public:	~Drainage();

};
